package tarea2.managedbeans;

import Negocio.InterfazNegocio;
import entidades.Medico;
import entidades.Paciente;
import javax.enterprise.context.ApplicationScoped;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.inject.Inject;
import javax.inject.Named;

@Named
@ApplicationScoped
public class ControlListaMedico {

    private int numPacientes = 0;
    private String nombre;
    private int lista;
    @Inject
    private UsuarioMBean usuario;
    @Inject
    private InterfazNegocio negocio;

    public ControlListaMedico() {

    }

    public String anadirPacienteLista(Paciente pac) {
        InterfazNegocio.Error e;
        System.out.println(usuario.getMedico());
        e = negocio.insertar_Lista_Paciente(pac, usuario.getMedico());
        switch (e) {
            case ERROR_USUARIO_REPETIDO:
                FacesContext ctx = FacesContext.getCurrentInstance();
                ctx.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR,
                        "Usuario ya existe en la lista", "Usuario ya existe en la lista"));
                break;
        }
        return null;
    }

    public String eliminarPacienteLista(Paciente pac) {
        InterfazNegocio.Error e;
        FacesContext ctx;
        System.out.println(usuario.getMedico());
        e = negocio.eliminar_Paciente_Lista_Paciente(pac, usuario.getMedico());
        switch (e) {
            case ERROR_USUARIO_INEXISTENTE:
                ctx = FacesContext.getCurrentInstance();
                ctx.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR,
                        "Usuario no existe", "Usuario no existe"));
                break;
            case NO_PACIENTE_LISTA_ESPERA:
                ctx = FacesContext.getCurrentInstance();
                ctx.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR,
                        "Usuario no existe en la lista de espera", "Usuario no existe en la lista de espera"));
                break;
        }
        return null;
    }

    public Medico medicoActual() {
        for (int i = 0; i < negocio.getMedicos().size(); i++) {
            if (usuario.getUsuario().equals(negocio.getMedicos().get(i))) {
                return negocio.getMedicos().get(i);
            }
        }
        return null;
    }

    public int getNumPacientes() {
        return numPacientes;
    }

    public void setNumPacientes(int numPacientes) {
        this.numPacientes = numPacientes;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public int getLista() {
        return lista;
    }

    public void setLista(int lista) {
        this.lista = lista;
    }

    public InterfazNegocio getNegocio() {
        return negocio;
    }

    public void setNegocio(InterfazNegocio negocio) {
        this.negocio = negocio;
    }

}
